package br.com.mmm.autocenter.fornecedores.entity;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.mmm.javacenter.framework.annotations.AttributeTagSupport;
import br.com.mmm.javacenter.framework.annotations.GenericTagSupport;
import br.com.mmm.javacenter.framework.entity.EstadoCivil;
import br.com.mmm.javacenter.framework.entity.Sexo;

@Entity()
public class PessoaFisica extends Pessoa{
	@Embedded
	@GenericTagSupport({
		@AttributeTagSupport(name="label",value="CPF"),
		@AttributeTagSupport(name="inicioLinha",value="true")
	})
	private Cpf cpf;
	@Embedded
	@GenericTagSupport({
		@AttributeTagSupport(name="label",value="RG"),
		@AttributeTagSupport(name="excludeList",value="true")
		
	})
	private Rg rg;
	
	@Temporal(TemporalType.TIMESTAMP)
	@GenericTagSupport({
		@AttributeTagSupport(name="label",value="Data de nascimento"),
		@AttributeTagSupport(name="finalLinha",value="true"),
		@AttributeTagSupport(name="excludeList",value="true")
		
	})
	private Calendar dataNascimento = new GregorianCalendar();
	@GenericTagSupport({
		@AttributeTagSupport(name="excludeList",value="true")
	})
	@ManyToOne
	private Sexo sexo;
	@GenericTagSupport({
		@AttributeTagSupport(name="excludeList",value="true")
	})
	@ManyToOne
	private EstadoCivil estadoCivil;
	@OneToMany(targetEntity=Residencia.class)
	private java.util.List<Residencia> residencias;
	
	@GenericTagSupport({
		@AttributeTagSupport(name="excludeList",value="true")
	})
	@Embedded
	private Endereco enderecoPostal;
	
	@OneToMany(targetEntity=Telefone.class)
	private List<Telefone> telefones;
	
	@GenericTagSupport({
		@AttributeTagSupport(name="excludeList",value="true")
	})
	@Embedded
	private Trabalho trabalho;
	
	@GenericTagSupport({
		@AttributeTagSupport(name="excludeList",value="true")
	})
	@OneToOne
	private PessoaFisica conjuge;
	
	public Cpf getCpf() {
		return cpf;
	}
	public void setCpf(Cpf cpf) {
		this.cpf = cpf;
	}
	public Calendar getDataNascimento() {
		return dataNascimento;
	}
	public void setDataNascimento(Calendar dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	public Sexo getSexo() {
		return sexo;
	}
	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}
	public Rg getRg() {
		return rg;
	}
	public void setRg(Rg rg) {
		this.rg = rg;
	}
	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}
	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}
	public java.util.List<Residencia> getResidencias() {
		return residencias;
	}
	public void setResidencias(java.util.List<Residencia> residencias) {
		this.residencias = residencias;
	}
	public List<Telefone> getTelefones() {
		return telefones;
	}
	public void setTelefones(List<Telefone> telefones) {
		this.telefones = telefones;
	}
	public Endereco getEnderecoPostal() {
		return enderecoPostal;
	}
	public void setEnderecoPostal(Endereco enderecoPostal) {
		this.enderecoPostal = enderecoPostal;
	}
	public PessoaFisica getConjuge() {
		return conjuge;
	}
	public void setConjuge(PessoaFisica conjuge) {
		this.conjuge = conjuge;
	}
	public Trabalho getTrabalho() {
		return trabalho;
	}
	public void setTrabalho(Trabalho trabalho) {
		this.trabalho = trabalho;
	}

}
